在机器学习模型训练时,模型优化算法是必不可少的,对于不同的模型,需要对原始的梯度下降优化算法不断的改进优化,所以我們要學習不同的梯度下降模型
1 批梯度下降法
批梯度下降法(batch gradient descent)是指在整个训练数据集上求解损失函数关于参数θ的梯度:
由于每次更新时使用整个数据集计算所有梯度,因此计算速度非常慢,同时批梯度下降法不能在线更新模型,无法在运行过程中,增加新的样本
2 随机梯度下降法
常,随机梯度下降法相比于批梯度下降法具有更快的速度,可用于在线学习,SGD以高方差频繁地更新,因此容易出现下列剧烈波动的情况。
3 小批量梯度下降法
小批量梯度下降法(mini-batch gradient descent)综合了上述两种方法的优点,在每次训练时使用 n 个小批量样本进行更新
训练神经网络模型,当使用小批量梯度下降法时,也将其称为SGD
4 Momentum-动量法
SGD很难通过陡谷,即在一个维度的表面弯曲程度远大于其他维度的区域,这种情况通常出现在局部最优点附近,这种情况下,SGD在不断波动下通过陡谷的斜坡,在沿着谷底到局部最优点的路径上缓慢前进
动量法是一种帮助SGD在相关方向上加速并抑制摇摆的方法,利于处理非平稳梯度,动量法是将上一次更新量的一个分量γ增加到当前的更新量中
5 5Nesterov-加速梯度下降法
接着上面举的例子,如果球盲目的沿着斜率方向向下滚动,结果也不一定总是令人满意,我们希望有一个智能的球,能够知道它将要去哪,如果遇到斜率将要上升时,能够知道减速
6 Adagrad-自适应梯度
Adagrad是一种适应参数的梯度下降优化算法,其自适应性可以个性化到特征级别,出现次数较少的特征的,会使用更大的学习率,出现次数较多的特征,会使用较小的学习率,因此Adagrad适合于稀疏数据的深度神经网络模型
明天再次開始實作數據處理